注册树模式 干啥用的???
直接获取1个已经创建好的对象
正常情况下,我们现在获取对象的方法主要有2种:
new 实例化
访问静态方法
创建1个注册类(Think\Register.php)
1 | namespace Think; |
改造工厂类
1 | class Factory |
入口文件调用(index.php)
1 | // 入口文件 |
适配器模式
适用场景:
可以将不同的函数接口封装成统一的API;
PHP的数据库操作有 mysql, mysqli, pdo 3种,可以用适配器模式统一成一致的方法。
类似的场景还有cache适配器,将 memcache, redis, file, apc 等不同的缓存函数,统一成一致。(Thinkphp5 缓存实现)
定义一个接口(framework\Think\IDatabase.php)
1 | namespace Think; |
创建3个数据库的操作类(实现其接口)
继承同一个适配器接口,使用一致的操作数据库方法。
MySql(framework\Think\Database\MySQL.php)
1 | namespace Think\Database; |
MySQLi(framework\Think\Database\MySQLi.php)
1 | namespace Think\Database; |
MySQLi(framework\Think\Database\PDO.php)
1 | namespace Think\Database; |
入口文件中调用(framework\index.php)
1 | // 入口文件 |
随某人喜欢历史句子之一: 春秋霸主,唯我独尊.齐桓公真的厉害….